997A - Convert to Ones - CodeForces Solution


brute force greedy implementation math *1500

Please click on ads to support us..

Python Code:

n, x, y = map(int, input().split())
s = input().strip()
zero = 0
if s.count('0') == 0:
	print(0)
	exit()
cnt = sum([1 for x in s.split('1') if len(x)>0])
print((cnt-1)*min(x, y) + y)

C++ Code:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
    ll n,x,y;
    cin>>n>>x>>y;
    string s;
    cin>>s;
    ll p=0;
    for(int i=1;i<n;i++)
    {
        if(s[i]=='1' && s[i-1]=='0') p++;
    } // 110010111001000011
    if(s[n-1]=='0') p++;
    if(p==0)
    {
        cout<<0<<endl;
        return 0;
    }
    cout<<min(p*y,(p-1)*x+y)<<endl;
    return 0;
}


Comments

Submit
0 Comments
More Questions

432D - Prefixes and Suffixes
486A - Calculating Function
1373B - 01 Game
1187A - Stickers and Toys
313B - Ilya and Queries
579A - Raising Bacteria
723A - The New Year Meeting Friends
302A - Eugeny and Array
1638B - Odd Swap Sort
1370C - Number Game
1206B - Make Product Equal One
131A - cAPS lOCK
1635A - Min Or Sum
474A - Keyboard
1343A - Candies
1343C - Alternating Subsequence
1325A - EhAb AnD gCd
746A - Compote
318A - Even Odds
550B - Preparing Olympiad
939B - Hamster Farm
732A - Buy a Shovel
1220C - Substring Game in the Lesson
452A - Eevee
1647B - Madoka and the Elegant Gift
1408A - Circle Coloring
766B - Mahmoud and a Triangle
1618C - Paint the Array
469A - I Wanna Be the Guy
1294A - Collecting Coins